
typedef int ElemType;

struct LinkedNode{
    ElemType node_value;
    struct LinkedNode *next_node;
};
typedef struct LinkedNode LnkNode;

struct LinkedStack{
    LnkNode *top;
    unsigned int length;
};
typedef struct LinkedStack LnkStack;

int InitStack(LnkStack *stack);
int DestroyStack(LnkStack *stack);
int ClearStack(LnkStack *stack);
int StackEmpty(LnkStack stack);
int GetTop(LnkStack stack,ElemType *e);
int Push(LnkStack *stack,ElemType e);
int Pop(LnkStack *stack,ElemType *e);
int StackLength(LnkStack stack);